. 外鍵(Foreign key)強制引用完整性。
. 主鍵(Primary key)可增強實體的完整性。
. 候選鍵(Candidate keys)與主鍵唯一地標識關係(表)中的元組(記錄),但未選擇它作為主鍵。
. 視圖(View)是一個虛擬表,擔任該連接的一個或多個感興趣的表和選擇字段的訪問控制機制。
數據庫完整性(Database Integrity)
通過以物理方式實現可靠的存儲,操作性地控制並發性以及通過聲明性地指定完整性約束並以程序方式將觸發器和工作單元定義為事務來通過語義方式應用控件,可以實現數據庫的完整性。
為了使信息具有完整性,其“健全性”必須高於質疑。信息應該是完整的(應該是全部事實)和有效的(只有全部是事實)。雷曼(Leyman)和羅勒(Roller)識別三種類型的完整性:
• **物理完整性(Physical integrity)**可防止由於介質故障和電磁干擾等問題而導致數據丟失;
• **操作完整性(Operational integrity)**與並發訪問數據的同步有關;
• **語義完整性(Semantic integrity )**可確保數據保留其含義,即數據正確反映了其建模的真實世界。
資料來源:Reinhardt A. Botha
語義完整性(Semantic Integrity)
語義完整性有三種常見的類型:
. **實體完整性(Entity integrity )**要求每個實體都有唯一的密鑰。(IBM)
. **引用完整性(Operational integrity )**是所有外鍵的所有值均有效的狀態。(IBM)
. **域完整性(Domain integrity)**指定必須在定義的域上聲明關係數據庫中的所有列。(維基百科)
誠信約束(Integrity Constraints)
根據Can Turker和Michael Gertz的說法,SQL-99提供了以下關鍵字來以聲明方式指定完整性約束:
. PRIMARY KEY 指定表的主鍵
. FOREIGN KEY(REFERENCES)對一個外鍵進行罰款,該外鍵的值必須與唯一/主鍵的值匹配
. NOT NULL防止列採用空值
. DEFAULT 設置列的默認值
. UNIQUE 一列或一組列在表中必須具有唯一值
. CHECK 定義了一個通用完整性約束,該約束必須對於表的每一行都適用,
. DOMAIN 創建一個(受限制的)列域,並且
. ASSERTION 定義了一個命名的通用完整性約束,該約束可以引用多個表。
-RDBMS(表)
-RDBMS(關係)
參考
. 在關係數據庫中實現語義完整性
. SQL-99和商業(對象)關係數據庫管理系統中的語義完整性支持
. 實體完整性,參照完整性和參照約束
資料來源: Wentz Wu QOTD-20210207